home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
096
/
usruptdt.arc
/
USRUPDT.BAS
next >
Wrap
BASIC Source File
|
1985-01-09
|
4KB
|
107 lines
10 ' RBBS-PC USERS DIRECTORY UPDATE PROGRAM
20 ' BY JOHN CERVENY 6/8/84
30 '
40 DIM NAME.SORT$(1000)
50 DEFINT A-Z
60 '
70 ' PRINT THE TITLE PAGE ON THE SCREEN.
80 '
90 CLS
100 LOCATE 7,18:PRINT STRING$(45,42)
110 PRINT TAB(18);"*";TAB(62);"*"
120 PRINT TAB(18);"* RBBS - PC USERS DIRECTORY UPDATE PROGRAM *"
130 PRINT TAB(18);"*";TAB(62);"*"
140 PRINT TAB(18);"*";TAB(33); "by John Cerveny";TAB(62);"*"
150 PRINT TAB(18);"*";TAB(62);"*"
160 PRINT TAB(18);STRING$(45,42)
170 LOCATE 18,26,0:PRINT"PRESS SPACE BAR TO CONTINUE"
180 POKE 106,0
190 CMD$ = INKEY$
200 IF CMD$ = ""THEN GOTO 190
210 IF CMD$ = CHR$(27) THEN GOTO 1050
220 IF CMD$ = " " THEN GOTO 270
230 GOTO 180
240 '
250 ' ASK THE USER FOR THE SOURCE AND DESTINATION FILES.
260 '
270 CLS:PRINT:INPUT "What is the SOURCE file? (default file is USERS)";SOURCE$
280 PRINT: IF SOURCE$="" THEN SOURCE$="USERS"
290 INPUT "What is the DESTINATION file? (default file is BULLET4)";DESTIN$
300 PRINT: IF DESTIN$="" THEN DESTIN$="BULLET4"
310 PRINT:PRINT "ENTER 1 TO PROCEED WITH UPDATE OF USER FILE, "
320 PRINT " 2 TO CHANGE THE SOURCE AND DESTINATION FILES,"
330 INPUT " 3 TO ABORT THE PROGRAM.";CHOICE$
340 IF CHOICE$="" GOTO 380
350 IF ASC(CHOICE$)<49 OR ASC(CHOICE$)>51 THEN GOTO 380
360 IF CHOICE$="1"GOTO 390 ELSE IF CHOICE$="2"GOTO 270
370 IF CHOICE$="3" GOTO 1050
380 PRINT:PRINT"INVALID CHOICE. PLEASE CHOOSE 1, 2, OR 3": GOTO 310
390 CLS: PRINT: PRINT "USER FILE UPDATE RUN STARTED AT ";TIME$ :PRINT
400 '
410 ' CHECK TO SEE IF THE SOURCE FILE EXISTS.
420 '
430 ON ERROR GOTO 1040
440 OPEN SOURCE$ FOR INPUT AS #1 : CLOSE #1
450 '
460 ' THE SOURCE FILE (WHICH SHOULD BE IN SEQUENTIAL FORMAT) IS OPENED FOR
470 ' INPUT. THE NAMES FROM THE SOURCE FILE ARE SWITCHED FROM THE FIRST
480 ' NAME - LAST NAME FORMAT TO ONE OF LAST NAME - FIRST NAME, AND A COMMA
490 ' IS INSERTED IN BETWEEN THE LAST AND FIRST NAMES.
500 '
510 OPEN "R",1,SOURCE$,128:END.USER=LOF(1)/128
520 FIELD 1,31 AS N$
530 COUNT = 1
540 IF COUNT > END.USER THEN GOTO 660
550 GET 1, COUNT
560 FSTBLKN = INSTR(N$," ")
570 SNDBLKN = INSTR(FSTBLKN + 1,N$," ") - 1
580 IF SNDBLKN < 1 THEN GOTO 640
590 USER.NAME$ = LEFT$(N$,SNDBLKN)
600 LAST.NAME = (SNDBLKN - FSTBLKN)
610 USER.NAME$ = RIGHT$(USER.NAME$,LAST.NAME) + ", " +LEFT$(USER.NAME$,FSTBLKN)
620 I = I + 1
630 NAME.SORT$(I) = USER.NAME$
640 COUNT = COUNT + 1: GOTO 540
650 CLOSE #1
660 '
670 ' THE USER NAME LISTING WILL NOW BE SORTED AND SENT TO THE DESTINATION FILE
680 ' THE NEW CONTENTS OF THE FILE WILL APPEAR ON THE SCREEN AS WELL.
690 '
700 OPEN DESTIN$ FOR OUTPUT AS #2
710 FOR K=1 TO I-1
720 FOR J=K+1 TO I
730 IF NAME.SORT$(J) > NAME.SORT$(K) THEN GOTO 750
740 SWAP NAME.SORT$(J), NAME.SORT$(K)
750 NEXT J,K
760 PRINT:PRINT "THE FILE '";DESTIN$;"' WILL APPEAR AS FOLLOWS:":PRINT
770 S$ = STRING$(79,42)
780 PRINT #2, S$
790 PRINT S$
800 PRINT #2, "*";TAB(79);"*"
810 PRINT "*"; TAB(79);"*"
820 PRINT #2,"*"; TAB(30);"-- USERS DIRECTORY --";TAB(79);"*"
830 PRINT "*"; TAB(30);"-- USERS DIRECTORY --";TAB(79);"*"
840 PRINT #2, "*"; TAB(79);"*"
850 PRINT "*"; TAB(79); "*"
860 COL = (I+1)/3
870 X=1: Y=COL+1: Z=COL*2+1
880 FOR C=1 TO COL
890 PRINT #2, "* ";NAME.SORT$(X); TAB(33); NAME.SORT$(Y); TAB(57);
900 PRINT #2, NAME.SORT$(Z); TAB(79);"*"
910 PRINT "* ";NAME.SORT$(X); TAB(33); NAME.SORT$(Y); TAB(57);
920 PRINT NAME.SORT$(Z); TAB(79);"*"
930 X=X+1 : Y=Y+1 : Z=Z+1
940 NEXT C
950 PRINT #2, "*";TAB(79);"*"
960 PRINT "*"; TAB(79); "*"
970 PRINT #2, "*";TAB(79);"*"
980 PRINT "*"; TAB(79); "*"
990 PRINT #2, S$
1000 PRINT S$
1010 PRINT : PRINT "USER FILE UPDATE RUN ENDED AT ";TIME$: PRINT
1020 CLOSE #2
1030 GOTO 1050
1040 PRINT "SOURCE FILE COULD NOT BE FOUND."
1050 PRINT: PRINT "END OF PROGRAM"
1060 END